在int b[ ][3]={{1},{2,3},{4,5,6},{0}};b[2][3]的值是
来源:百度知道 编辑:UC知道 时间:2024/06/30 05:14:04
数组下标越界了
#include<stdio.h>
#include<stdlib.h>
int main()
{
int b[][3]={{1},{2,3},{4,5,6},{0}};
printf("%d\n",b[2][3]);
int i,j;
for (i=0;i<=2;i++)
{ for( j=0;j<=3;j++)
printf("%d ",b[i][j]);
printf("\n");}
system("pause");
return 0;
}
0
1 0 0 2
2 3 0 4
4 5 6 0
请按任意键继续. .
b[2][3]这种写法虽然不太好,但从语法上说, 还是有明确的含义的.
它相当于b[2][2]的下一个位置的元素, 所以它相当于b[3][0], 即0
b[0][3],b[1][3],b[2][3],b[3][3],b[3][2],b[3][1],b[3][0]等都越界
很明显越界了嘛,下标是从0开始的,b[2][3]中,第二个[3]已经越界了,定义中3表示有3个元素,而b[2][3]已经表示第4个元素了
很明显,已经越界了!
unsigned int a=2;int b = -3;
int a=2,b=3; float x=3.5,y=2.5; (float) (a+b)/2+(int)x%(int)y怎么算?
void a(int a,int b=0)的含义?
已知int a=1;int b;b=(++a)+(++a)+(++a);为什么b=10?
int a=b;与int a,b;a=b;的区别
int i,b,k=0;
fun1(int a,int b)
java中的数组赋值给数组问题int[ ] a=new int[10];int[ ] b=new int[8];
int a=3,b=4,b=5; !(++c-1&&b+c/2)等于什么?为什么?谢谢
a=2,b=3,x=3.5,y=2.5,求(float)(a+b)/2+(int)x/(int)y的值?